/* sysdep.h.in for Scheme 48.  Originally generated automatically from
   configure.in by autoheader, but then modified manually to add
   NLIST_HAS_N_NAME, etc.  The "configure" script creates sysdep.h
   from this file.  If "configure" doesn't work for you, copy this
   file to sysdep.h and make any appriopriate modifications.  If
   you're not sure what modifications would be appriopriate, it is
   generally safe to leave things as they are. */


/* Define const to empty if the ANSI C "const" keyword doesn't work.  */
#undef const

/* Define this appropriately as the return value of a signal handler on
   your system. */
#undef RETSIGTYPE

/* Define FILE_HAS__CNT if streams, as defined in <stdio.h>, have _cnt
   components.  This is widespread but basically highly unportable.
   It is used in order to implement CHAR-READY?. */
#undef FILE_HAS__CNT

/* Define HAVE_SELECT if the BSD-derived select() call is available.
   select() is used in order to implement CHAR-READY?. */
#undef HAVE_SELECT

/* Define HAVE_SETITIMER if the BSD-derived setitimer() call is
   available.  In the absence of setitimer(), alarm() will be used.*/
#undef HAVE_SETITIMER

/* Define HAVE_GETTIMEOFDAY if you have gettimeofday().  This is a BSD
   thing that returns elapsed time to the nearest microsecond (yeah,
   right).  In the absence of gettimeofday(), ftime() or time() will
   be used. */
#undef HAVE_GETTIMEOFDAY

/* Define if you have ftime() and its associated header file sys/timeb.h.
   This is an ancient Unix version 7 thing, but if gettimeofday()
   isn't available then it may be the only way to get sub-second
   resolution for elapsed time. */
#undef HAVE_FTIME
#undef HAVE_SYS_TIMEB_H

/* Define if you have the nlist() function.  This is a
   not-very-portable way of looking up external symbols. */
#undef HAVE_NLIST

/* Define if struct nlist, defined in <nlist.h>, has an n_name component.
   If it doesn't then we expect it to have an n_un component. */
#undef NLIST_HAS_N_NAME

/* Define if you have ANSI strerror. */
#undef HAVE_STRERROR

/* Define if you have dlopen() and related routines (dynamic linking
   of shared object files). */
#undef HAVE_DLOPEN

/* Define if you have header file libgen.h.  This has something to do
   with locating shared object files. */
#undef HAVE_LIBGEN_H

/* Define if you have the chroot() system call (quite inessential!). */
#undef HAVE_CHROOT

/* Define if you have the Posix sigaction() call. */
#undef HAVE_SIGACTION

/* Define if you have socket() and related functions. */
#undef HAVE_SOCKET

/* Define if Posix "time.h" include file is <posix/time.h> instead of
   the standard <time.h>.  (MIPS RISC/OS) */
#undef POSIX_TIME_H

/* Define this if /bin/ld exists and accepts a BSD-style -A argument
   (for dynamic loading of .o files). */
#undef ANCIENT_DYNLOAD

/* Define if fd_set and friends need sys/select.h */
#undef HAVE_SYS_SELECT_H

#if !defined(HAVE_SIGACTION)
struct sigaction {
  void (*sa_handler)();
  int sa_mask;
  int sa_flags;
};

/* for HPUX with CC */
#undef _HPUX_SOURCE

/* for HPUX with CC */
#undef hpux

#define sigaction(sig, act, oact) signal((sig), (act)->sa_handler)
#define sigemptyset(foo) 0
#endif

/* Under HPUX, select() is declared
      extern int select(size_t, int *, int *, int *, const struct timeval *);
   in sys/time.h.  This is brain-dead, since the FD_SET, FD_CLR, and FD_ZERO
   macros defined in HPUX's sys/types.h assume fd sets are a struct type, 
   and therefore blow up if given int *'s. So the four procedures that
   hack fd_set's are not even type-consistent, even under C's lame rules. 
   Give me a break. 
       -Olin
*/

#if defined(hpux)
# define select1(nfds, r, w, x, t) select(nfds, (int*)r, (int*)w, (int*)x, t)
#else
# define select1 select
#endif


/* Define USCORE if your c externals are prepended with an underscore */
#undef USCORE

/* Define if you have POSIX tzname (Losing sunos4...). */
#undef HAVE_TZNAME

/* Define if your tm struct in <time.h> has a tm_gmtoff field. */
#undef HAVE_GMTOFF

/* Define if your sys_errlist is a const definition */
#undef HAVE_CONST_SYS_ERRLIST

/* Include info we know about the system from config.scsh */
#include "scsh/machine/sysdep.h"
